// -----------------------------------------------------------------------------
// M A R I T I M E   R E S E A R C H   I N S T I T U T E   N E T H E R L A N D S
// -----------------------------------------------------------------------------
// Copyright (C) December 14, 2009 MARIN - All rights reserved - http://www.marin.nl
// -----------------------------------------------------------------------------
// Program  :
// Module   :
// File     : MathGeometry.h
// -----------------------------------------------------------------------------

#ifndef MATHGEOMETRY_H
#define	MATHGEOMETRY_H

#include "defines.h"
#include <mml/Vector.h>
#include "Geometry.h"

// -----------------------------------------------------------------------------
// class MathGeometry
// -----------------------------------------------------------------------------
/// short description
/** long description */
// -----------------------------------------------------------------------------
class MathGeometry : public Geometry
{

    typedef Geometry super;

public:

    MathGeometry(const mml::Vector3d& a_radii, REAL pm, bool ellipse);

    virtual ~MathGeometry();

    const mml::Vector3d& getRadii() const;

    REAL getMaximumMeterWaterPressure() const;

    bool isEllipse() const;

private:

    mml::Vector3d m_radii;
    REAL m_pm;
    bool m_ellipse;
    
    MathGeometry(const MathGeometry& a_other);
    MathGeometry & operator=(const MathGeometry& a_other);

};

#endif // MATHGEOMETRY_H

